#include "ngram.h"
#include <string>
using namespace std;
#include "Tupla.h"


class bigrama : public ngram
{
    public:
		bigrama();
        bigrama(string termino1,string termino2);
        ~bigrama();
        static estructuraAuxiliar estructuraAsociada;
        static estructuraAuxiliar estructuraAsociadaOrdenadaPorSegundoTermino;

        static const char* RUTA_ARCHIVO_BIGRAMAS;

        static const char* RUTA_ARCHIVO_BIGRAMAS_REORDENADOS;


        string representacionReordenada();

        //static void crearArchivosUnificados();

        static bigrama* bigramasDeTupla(Tupla tupla);
        static void agregarBigramasDeTupla(Tupla tupla);
        static void instertarBigramasDeTupla(Tupla tupla);

        static void setearMaximaCantidadEnEstructurasAsociadas(int maxNGramas=0);

        static void dumpEstructurasAsociadas();

        static void recolectarDatosDeTrigramas();

    private:
        static void recolectarDatosDeTrigramasDesdeArchivo();
        static void recolectarDatosDeTrigramasDesdeEstructura();
        static fstream archivoBigramas;
        static fstream archivoBigramasOrdenadaPorSegundoTermino;
        static std::string construirRepresentacion(string termino1, string termino2, unsigned long int freq, unsigned long int distintosConFreq1, unsigned long int distintosConFreq2, unsigned long int distintosConFreq2oMas);
};
